﻿Imports Microsoft.VisualStudio.TestTools.UnitTesting

Imports FTPBoom



'''<summary>
'''Se trata de una clase de prueba para UsersTest y se pretende que
'''contenga todas las pruebas unitarias UsersTest.
'''</summary>
<TestClass()> _
Public Class UsersTest


    Private testContextInstance As TestContext

    '''<summary>
    '''Obtiene o establece el contexto de la prueba que proporciona
    '''la información y funcionalidad para la ejecución de pruebas actual.
    '''</summary>
    Public Property TestContext() As TestContext
        Get
            Return testContextInstance
        End Get
        Set(ByVal value As TestContext)
            testContextInstance = Value
        End Set
    End Property

#Region "Atributos de prueba adicionales"
    '
    'Puede utilizar los siguientes atributos adicionales mientras escribe sus pruebas:
    '
    'Use ClassInitialize para ejecutar código antes de ejecutar la primera prueba en la clase 
    '<ClassInitialize()>  _
    'Public Shared Sub MyClassInitialize(ByVal testContext As TestContext)
    'End Sub
    '
    'Use ClassCleanup para ejecutar código después de haber ejecutado todas las pruebas en una clase
    '<ClassCleanup()>  _
    'Public Shared Sub MyClassCleanup()
    'End Sub
    '
    'Use TestInitialize para ejecutar código antes de ejecutar cada prueba
    '<TestInitialize()>  _
    'Public Sub MyTestInitialize()
    'End Sub
    '
    'Use TestCleanup para ejecutar código después de que se hayan ejecutado todas las pruebas
    '<TestCleanup()>  _
    'Public Sub MyTestCleanup()
    'End Sub
    '
#End Region


    '''<summary>
    '''Una prueba de Añadir
    '''</summary>
    <TestMethod()> _
    Public Sub AñadirTest()
        Dim target As Users = New Users()

        Dim servidor As String = "aaaa"
        Dim usuario As String = "demi"
        Dim contraseña As String = "xxxx"
        Dim puerto As String = "21"


        Dim expected As New User
        expected.Servidor = servidor
        expected.Usuario = usuario
        expected.Contraseña = contraseña
        expected.Puerto = puerto

        Dim actual As User

        actual = target.Añadir(servidor, usuario, contraseña, puerto)
        Assert.IsTrue(expected.Equals(actual))  ' Si el usuario a añadir es "nuevo" deberá devolver una copia

        expected = Nothing
        actual = target.Añadir(servidor, usuario, contraseña, puerto)
        Assert.AreEqual(expected, actual)  ' Si ya existía devolvería Nothing

        ' Assert.Inconclusive("Compruebe la exactitud de este método de prueba.")
    End Sub

    '''<summary>
    '''Una prueba de Añadir
    '''</summary>
    <TestMethod()> _
    Public Sub AñadirTest1()
        Dim target As Users = New Users()
        Dim usuario As User = New User
        usuario.Servidor = "bbbb"
        usuario.Usuario = "edemith"
        usuario.Contraseña = "xxxx"
        usuario.Puerto = 21
        Dim expected As User = usuario
        Dim actual As User
        actual = target.Añadir(usuario)
        Assert.AreEqual(expected, actual)
        'Assert.Inconclusive("Compruebe la exactitud de este método de prueba.")
    End Sub

    '''<summary>
    '''Una prueba de Borrar
    '''</summary>
    <TestMethod()> _
    Public Sub BorrarTest()
        Dim target As Users = New Users()
        Dim usuario As User = New User
        Dim expected As String = "Usuario inexistente"
        Dim actual As String
        actual = target.Borrar(usuario)
        Assert.AreEqual(expected, actual) 'Si el usuario no existe devuelve cliente inexistente


        usuario.Servidor = "bbbb"
        usuario.Usuario = "edemith"
        usuario.Contraseña = "xxxx"
        usuario.Puerto = 21
        target.Añadir(usuario)
        expected = "Usuario borrado" ' Si el usuario existe devuelve Usuario borrado
        actual = target.Borrar(usuario)
        Assert.AreEqual(expected, actual)
        'Assert.Inconclusive("Compruebe la exactitud de este método de prueba.")
    End Sub

    '''<summary>
    '''Una prueba de GuardarCliente
    '''</summary>
    <TestMethod()> _
    Public Sub GuardarUsuarioTest()
        Dim target As Users = New Users()
        target.GuardarUsuario()
        'Assert.Inconclusive("Un método que no devuelve ningún valor no se puede comprobar.")
    End Sub
End Class
